package com.Txunda.fxw.base.web;

import java.util.Map;

/**
 * API调用的事件监听器
 * 
 * @author Zero @date 2013-6-17
 * @version 1.0
 */
public interface ApiListener {

	/**
	 * API调用之前的回调方法
	 */
	void onStarted();

	/**
	 * API调用取消之后的回调方法
	 */
	void onCancelled();

	/**
	 * API调用中的回调方法
	 * 
	 * @param total
	 *            总进度
	 * @param current
	 *            当前进度
	 * @param isUploading
	 *            是否上传
	 */
	void onLoading(long total, long current, boolean isUploading);

	/**
	 * API调用成功后返回值以json对象方式通知监听器
	 * 
	 * @param requestUrl
	 * @param jsonStr
	 */
	void onComplete(String requestUrl, String jsonStr);

	/**
	 * 出现业务错误时通知监听器错误码及字错误码等信息
	 * 
	 * @param error
	 */
//	void onError(Map<String, String> error);
	
	/**
	 * 出现业务错误时通知监听器错误码及字错误码等信息
	 * @param requestUrl
	 * @param error
	 */
	void onError(String requestUrl, Map<String, String> error);

	/**
	 * 出现网络问题等未知异常时会回调此方法
	 * 
	 * @param e
	 */
	void onException(Exception exception);

}
